package com.leetcode;

/**
 * PlusOne..
 *
 * @author Lizhong
 * @date 2019/8/28
 */
public class PlusOne {
    public int[] plusOne(int[] digits) {
        int len = digits.length;
        int k = 0;
        if (len == 1 && digits[len - 1] == 9) {
            int[] x = {1, 0};
            return x;
        }
        if (digits[len - 1] == 9) {

            for (int i = len - 1; i >= 0; i--) {
                int m = digits[i];
                if (m != 9) {
                    digits[i] = digits[i] + 1;
                    break;
                } else {
                    digits[i] = 0;
                    if (i == 0) {
                        k = 1;
                    }
                }
            }
        } else {
            digits[len - 1] = digits[len - 1] + 1;
        }
        if (k == 1) {
            int nn[] = new int[len + 1];
            nn[0] = 1;
            digits = nn;
        }
        return digits;
    }
    // 官方解答
    public int[] plusOneOfficial(int[] digits) {
        for (int i = digits.length - 1; i >= 0; i--) {
            digits[i]++;
            digits[i] = digits[i] % 10;
            if (digits[i] != 0) return digits;
        }
        digits = new int[digits.length + 1];
        digits[0] = 1;
        return digits;
    }

}

